The R markdown is available from the pulldown menu for Code at the upper-right, choose “Download Rmd”, or download the Rmd from GitHub.
Jupyter Bridge
Jupyter-Bridge is a Flask service that executes on a server accessible to both a remote Jupyter server and browser-based Jupyter client. Code running on the server calls Jupyter-Bridge to queue a request that the client will execute, and the client will use Jupyter-Bridge to return a reply. This enables a workflow running on remote Jupyter to execute functions on a PC-local Cytoscape – the remote Jupyter runs the request through Jupyter-Bridge, where it is picked up by Javascript code running on the Jupyter web page in the PC-local browser, which in turn calls Cytoscape. The Cytoscape response travels the reverse route.
Visit the source code of Juputer Bridge for more information.
Prerequisites (Local machine)
RCy3 works by connecting with Cytoscape. You will need to install and launch Cytoscape in your local machine:
Prerequisites (Cloud server)
There are a lot of cloud computing services online, such as Google Colab, Amazon EMR Notebook, Microsoft Azure, CoCalc and your own JupyterHub. You can choose your favorite one.
Here we use Google Colab to demonstrate. Visit this link to create a new empty R Notebook, and make sure to run code below in the cloud.
Installation
Install the latest version of RCy3 in the cloud server from GitHub.
install.packages("devtools")
library(devtools)
install_github("cytoscape/RCy3")
library(RCy3)
Connect to local Cytoscape
First, build connection between the jupyter notebook and local Cytoscape.
browserClientJs <- getBrowserClientJs()
IRdisplay::display_javascript(browserClientJs)
Check connection
Then, launch Cytoscape and keep it running whenever using RCy3 and Jupyter Bridge. Confirm that you have everything installed and running:
apiVersion cytoscapeVersion
"v1" "3.8.2"
You are connected to Cytoscape!
Done! Now you can execute a workflow in a remote server-based Jupyter Notebook to leverage your workstation’s Cytoscape. You can also easily share notebook-based workflows and data sets.
LS0tCnRpdGxlOiAiSnVweXRlciBCcmlkZ2UgYW5kIFJDeTMiCmF1dGhvcjogIllpaGFuZyBYaW4sIEFsZXggUGljbyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCipUaGUgUiBtYXJrZG93biBpcyBhdmFpbGFibGUgZnJvbSB0aGUgcHVsbGRvd24gbWVudSBmb3IqIENvZGUgKmF0IHRoZSB1cHBlci1yaWdodCwgY2hvb3NlICJEb3dubG9hZCBSbWQiLCBvciBbZG93bmxvYWQgdGhlIFJtZCBmcm9tIEdpdEh1Yl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2N5dG9zY2FwZS9jeXRvc2NhcGUtYXV0b21hdGlvbi9tYXN0ZXIvZm9yLXNjcmlwdGVycy9SL25vdGVib29rcy9qdXB5dGVyLWJyaWRnZS1yY3kzLlJtZCkuKgoKPGhyIC8+CiMgSnVweXRlciBCcmlkZ2UKCkp1cHl0ZXItQnJpZGdlIGlzIGEgRmxhc2sgc2VydmljZSB0aGF0IGV4ZWN1dGVzIG9uIGEgc2VydmVyIGFjY2Vzc2libGUgdG8gYm90aCBhIHJlbW90ZSBKdXB5dGVyIHNlcnZlciBhbmQgYnJvd3Nlci1iYXNlZCBKdXB5dGVyIGNsaWVudC4gQ29kZSBydW5uaW5nIG9uIHRoZSBzZXJ2ZXIgY2FsbHMgSnVweXRlci1CcmlkZ2UgdG8gcXVldWUgYSByZXF1ZXN0IHRoYXQgdGhlIGNsaWVudCB3aWxsIGV4ZWN1dGUsIGFuZCB0aGUgY2xpZW50IHdpbGwgdXNlIEp1cHl0ZXItQnJpZGdlIHRvIHJldHVybiBhIHJlcGx5LiBUaGlzIGVuYWJsZXMgYSB3b3JrZmxvdyBydW5uaW5nIG9uIHJlbW90ZSBKdXB5dGVyIHRvIGV4ZWN1dGUgZnVuY3Rpb25zIG9uIGEgUEMtbG9jYWwgQ3l0b3NjYXBlIC0tIHRoZSByZW1vdGUgSnVweXRlciBydW5zIHRoZSByZXF1ZXN0IHRocm91Z2ggSnVweXRlci1CcmlkZ2UsIHdoZXJlIGl0IGlzIHBpY2tlZCB1cCBieSBKYXZhc2NyaXB0IGNvZGUgcnVubmluZyBvbiB0aGUgSnVweXRlciB3ZWIgcGFnZSBpbiB0aGUgUEMtbG9jYWwgYnJvd3Nlciwgd2hpY2ggaW4gdHVybiBjYWxscyBDeXRvc2NhcGUuIFRoZSBDeXRvc2NhcGUgcmVzcG9uc2UgdHJhdmVscyB0aGUgcmV2ZXJzZSByb3V0ZS4KCgoKIVtKdXB5dGVyLUJyaWRnZSBhbGxvd3MgYSByZW1vdGUgSnVweXRlciBOb3RlYm9vayB0byBjb21tdW5pY2F0ZSB3aXRoIGEgd29ya3N0YXRpb24tYmFzZWQgQ3l0b3NjYXBlIGFzIGlmIHRoZSBOb3RlYm9vayB3ZXJlIHJ1bm5pbmcgb24gdGhlIEN5dG9zY2FwZSB3b3Jrc3RhdGlvbi4gQSBKdXB5dGVyIE5vdGVib29rIHBhc3NlcyBhIEN5dG9zY2FwZSBjYWxsIHRvIGFuIGluZGVwZW5kZW50IEp1cHl0ZXItQnJpZGdlIHNlcnZlciB3aGVyZSBpdOKAmXMgcGlja2VkIHVwIGJ5IHRoZSBKdXB5dGVyLUJyaWRnZSBicm93c2VyIGNvbXBvbmVudCBhbmQgaXMgcGFzc2VkIHRvIEN5dG9zY2FwZS4gVGhlIEN5dG9zY2FwZSByZXNwb25zZSBpcyByZXR1cm5lZCB2aWEgdGhlIG9wcG9zaXRlIGZsb3cuIEFzIGEgcmVzdWx0LCB3b3JrZmxvd3MgY2FuIHJlc2lkZSBpbiB0aGUgY2xvdWQsIGFjY2VzcyBjbG91ZCByZXNvdXJjZXMsIGFuZCB5ZXQgc3RpbGwgbGV2ZXJhZ2UgQ3l0b3NjYXBlIGZlYXR1cmVzLiBKdXB5dGVyIEJyaWRnZSBzdXBwb3J0cyBweTRjeXRvc2NhcGUgZmlyc3QsIGFuZCBub3cgUkN5MyBhbHNvIHN1cHBvcnQgSnVweXRlci1CcmlkZ2UuXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3l0b3NjYXBlL2p1cHl0ZXItYnJpZGdlL21hc3Rlci9kb2NzL2ltYWdlcy9GaWd1cmUlMjAyLnN2ZykKCgoKClZpc2l0IHRoZSBbc291cmNlIGNvZGUgb2YgSnVwdXRlciBCcmlkZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9jeXRvc2NhcGUvanVweXRlci1icmlkZ2UpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyBQcmVyZXF1aXNpdGVzIChMb2NhbCBtYWNoaW5lKQpSQ3kzIHdvcmtzIGJ5IGNvbm5lY3Rpbmcgd2l0aCBDeXRvc2NhcGUuIFlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBhbmQgbGF1bmNoIEN5dG9zY2FwZSBpbiB5b3VyIGxvY2FsIG1hY2hpbmU6CgoqIERvd25sb2FkIHRoZSBsYXRlc3QgQ3l0b3NjYXBlIGZyb20gaHR0cDovL3d3dy5jeXRvc2NhcGUub3JnL2Rvd25sb2FkLnBocAoqIENvbXBsZXRlIGluc3RhbGxhdGlvbiB3aXphcmQKKiBMYXVuY2ggQ3l0b3NjYXBlCgojIFByZXJlcXVpc2l0ZXMgKENsb3VkIHNlcnZlcikKVGhlcmUgYXJlIGEgbG90IG9mIGNsb3VkIGNvbXB1dGluZyBzZXJ2aWNlcyBvbmxpbmUsIHN1Y2ggYXMgR29vZ2xlIENvbGFiLCBBbWF6b24gRU1SIE5vdGVib29rLCBNaWNyb3NvZnQgQXp1cmUsIENvQ2FsYyBhbmQgeW91ciBvd24gSnVweXRlckh1Yi4gWW91IGNhbiBjaG9vc2UgeW91ciBmYXZvcml0ZSBvbmUuCgpIZXJlIHdlIHVzZSBHb29nbGUgQ29sYWIgdG8gZGVtb25zdHJhdGUuIFZpc2l0IHRoaXMgW2xpbmtdKGh0dHBzOi8vY29sYWIudG8vcikgdG8gY3JlYXRlIGEgbmV3IGVtcHR5IFIgTm90ZWJvb2ssIGFuZCBtYWtlIHN1cmUgdG8gcnVuIGNvZGUgYmVsb3cgaW4gdGhlIGNsb3VkLgoKIyBJbnN0YWxsYXRpb24KSW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgUkN5MyBpbiB0aGUgY2xvdWQgc2VydmVyIGZyb20gR2l0SHViLgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygiZGV2dG9vbHMiKQpsaWJyYXJ5KGRldnRvb2xzKQppbnN0YWxsX2dpdGh1YigiY3l0b3NjYXBlL1JDeTMiKQpsaWJyYXJ5KFJDeTMpCmBgYAoKCgojIENvbm5lY3QgdG8gbG9jYWwgQ3l0b3NjYXBlCkZpcnN0LCBidWlsZCBjb25uZWN0aW9uIGJldHdlZW4gdGhlIGp1cHl0ZXIgbm90ZWJvb2sgYW5kIGxvY2FsIEN5dG9zY2FwZS4KYGBge3J9CmJyb3dzZXJDbGllbnRKcyA8LSBnZXRCcm93c2VyQ2xpZW50SnMoKQpJUmRpc3BsYXk6OmRpc3BsYXlfamF2YXNjcmlwdChicm93c2VyQ2xpZW50SnMpCmBgYAoKIyBDaGVjayBjb25uZWN0aW9uClRoZW4sIGxhdW5jaCBDeXRvc2NhcGUgYW5kIGtlZXAgaXQgcnVubmluZyB3aGVuZXZlciB1c2luZyBSQ3kzIGFuZCBKdXB5dGVyIEJyaWRnZS4gQ29uZmlybSB0aGF0IHlvdSBoYXZlIGV2ZXJ5dGhpbmcgaW5zdGFsbGVkIGFuZCBydW5uaW5nOgpgYGB7cn0KY3l0b3NjYXBlVmVyc2lvbkluZm8oKQpjeXRvc2NhcGVQaW5nKCkKYGBgCkRvbmUhIE5vdyB5b3UgY2FuIGV4ZWN1dGUgYSB3b3JrZmxvdyBpbiBhIHJlbW90ZSBzZXJ2ZXItYmFzZWQgSnVweXRlciBOb3RlYm9vayB0byBsZXZlcmFnZSB5b3VyIHdvcmtzdGF0aW9u4oCZcyBDeXRvc2NhcGUuIFlvdSBjYW4gYWxzbyBlYXNpbHkgc2hhcmUgbm90ZWJvb2stYmFzZWQgd29ya2Zsb3dzIGFuZCBkYXRhIHNldHMuCgojIFVzZSBjYXNlOiBSdW4gZGlmZmVyZW50aWFsbHkgZXhwcmVzc2VkIGdlbmVzIG5ldHdvcmsgYW5hbHlzaXMgaW4gdGhlIGNsb3VkClZpc2l0IHRoZSBbSnVweXRlciBCcmlkZ2UgUkN5MyBhbmQgRGlmZmVyZW50aWFsbHkgRXhwcmVzc2VkIEdlbmVzIE5ldHdvcmsgQW5hbHlzaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jeXRvc2NhcGUvY3l0b3NjYXBlLWF1dG9tYXRpb24vYmxvYi9tYXN0ZXIvZm9yLXNjcmlwdGVycy9SL25vdGVib29rcy9qdXB5dGVyLWJyaWRnZS1yY3kzLmlweW5iKSBmb3IgdGhlIGRldGFpbGVkIHdvcmtmbG93LgoK